给数字花园添加 Giscus 评论系统

本文由 简悦 SimpRead 转码, 原文地址 zhuanlan.zhihu.com

本文首发地址为:https://blog.rahc.top/article/tech-share-garden-giscus-comment.html.

前言

对于自己的数字花园,一开始并没有在评论区和自己的阅读者进行交流互动的打算,主要的原因是考虑到在数字花园中的想法并不成熟,加之数字花园现有的笔记基本是自己学习过程中的笔记,更多的是对自己所学知识的整理。直到昨天在完善自己博客的评论系统,突然想到一个评论系统更能拉近自己和读者之间的交流。面对同样的知识,读者可能会遇到各种各样的问题,希望能与作者进行交流,答疑。所以,决定也给自己数字花园加上一个评论系统。

评论系统的选择

在之前写的《利用 Obsidian 搭建自己的 Digital Garden》中已经详细阐述了自己数字花园搭建的流程。数字花园的实现过程是采用了 oleeskild 开源的插件 obsidian-digital-garden。关于评论系统在它的官方文档中,推荐了 3 种方案,分别是 giscusutterancesdisqus。前两种评论都依赖于 github 账号,考虑到目前数字花园的笔记主要是后端开发和人工智能,受众是程序员,基本上都有 github 账号,所以选择了 giscus 进行配置和部署。

giscus 的部署

giscus 是基于 Github Discussions 实现的评论系统,受 utterances(话语) 的启发。它会使用 Github Discussions 搜索 API 来搜索当前页面对应的 discussions,即对于当前页面的评论。

  1. 点击以下链接在 github 创建新仓库。

  1. 在新建的仓库的 settings->general->Discussions ,中打开 Discussions 功能。

  1. 点击该链接:https(超文本传输协议安全(Hyper Text Transfer Protocol))://github.com/apps/giscus,在 github 安装 giscus 插件。
  2. 点击该链接:https://giscus.app/zh-CN,对 giscus 进行配置,把 giscus 关联到步骤 1 创建的新仓库

  1. 复制以下代码,等待后续步骤的使用。

  1. 配置数字花园仓库,这里我推荐用 GitHub Desktop 拉取数字花园仓库,再用 vscode 编辑,然后再用 GitHub Desktop 提交并推送到远程仓库的方式。

src/site/_includes/components/user 目录下,我们可以给自己的数字花园添加自定义的组件。由于我们是给我们的每篇笔记页面都添加一个评论,所以在该目录下新建notes/footer 目录,在该目录下添加如下文件001-giscus-comment.njk ,文件名除了扩展名.njk 外,名字可以随意。文件内容为步骤 5 中的内容。

<script src="https://giscus.app/client.js"
 data-repo="github用户名/步骤1创建的仓库名"
 data-repo-id="你的date-repo-id"
 data-category="Announcements"
 data-category-id="你的data-category-id"
 data-mapping="pathname"
 data-strict="0"
 data-reactions-enabled="1"
 data-emit-metadata="0"
 data-input-position="bottom"
 data-theme="preferred_color_scheme"
 data-lang="zh-CN"
 crossorigin="anonymous"
 async>
</script>
  1. 修改页面布局。编辑src/_includes/layouts/note.njk 文件。 默认的布局是如图所示,分为左、中、右:

如果不修改,它会在最底层生成一个横跨左、中、右的一个评论区域,影响美观。而我只是想在中间的底部,加上一个评论区域。在note.njk 文件的<main>...</main> 之间添加如下代码:

<main>
 // 底部添加如下代码
 {% for imp in dynamics.notes.footer %}
   {% include imp %}
  {% endfor %}
</main>

注释掉 main 之后,body 内相同的代码:

<body>
 {# {% for imp in dynamics.notes.footer %}
   {% include imp %}
  {% endfor %} #}
  {%include "components/lucideIcons.njk"%}
</body>

现在的布局如图所示:

  1. 最终的效果如图所示:

最后,欢迎您到我的数字花园逛逛,一起进步成长,学有所成。

总结归纳

本文简单讲述了如何为自己的数字花园添加 giscus 评论系统。

引用或提到的资源

​ 有关在数字花园中部署 giscus 上的问题,欢迎您在底部评论区留言,一起交流~